#ifndef DETERMINISTICSELECTIONSTRATEGY_H_
#define DETERMINISTICSELECTIONSTRATEGY_H_

#include<QPair>
#include "SelectionStrategy.h"

/**
  * @author Łukasz Szybka
  */
class DeterministicSelectionStrategy : public SelectionStrategy
{
public:
    DeterministicSelectionStrategy();
    Chromosome* selectOne(const QList<Chromosome*>& chromosomeList);
    void resetTempData();

private:

    void createTempList(const QList<Chromosome*>& chromosomeList);

    int currentIndex;
    int retCount;
    bool listSizeReached;
    QList< QPair<double, int> > tmpList;

};

#endif /*DETERMINISTICSELECTIONSTRATEGY_H_*/
